package com.huanghuang.shuadan.manager.user.converter;

import com.huanghuang.shuadan.dao.entity.req.base.PageReqDO;
import com.huanghuang.shuadan.dao.entity.req.user.UserReqDo;
import com.huanghuang.shuadan.dao.entity.res.user.UserResDo;
import com.huanghuang.shuadan.service.entity.base.PageReqDTO;
import com.huanghuang.shuadan.service.entity.req.UserRegisterReqDTO;
import com.huanghuang.shuadan.service.entity.req.UsernameReqDTO;
import com.huanghuang.shuadan.service.entity.res.UserResDTO;
import org.springframework.util.CollectionUtils;

import java.util.ArrayList;
import java.util.List;

/**
 * @Author suxiaoxiao
 * @Date 2019/7/13 23:18
 * @Version 1.0
 */
public enum UserConverter {

    /**
     * 实例
     */
    INSTANCE;

    public List<UserResDTO> convert2UserResList(List<UserResDo> list) {
        if (CollectionUtils.isEmpty(list)) {
            return null;
        }
        List<UserResDTO> userResDTOList = new ArrayList<>(list.size());
        for (UserResDo userResDo : list) {
            UserResDTO userResDTO = convert2UserResDTO(userResDo);
            userResDTOList.add(userResDTO);
        }
        return userResDTOList;
    }

    public PageReqDO conver2PageReqDO(PageReqDTO pageReqDTO) {
        if (pageReqDTO == null) {
            return null;
        }
        PageReqDO pageReqDO = new PageReqDO();
        pageReqDO.setPageNum(pageReqDTO.getPageNum());
        pageReqDO.setPageSize(pageReqDTO.getPageSize());
//        pageReqDO.setLogId(pageReqDTO.getLogId());
        return pageReqDO;
    }

    public UserReqDo convert2UserReqDo(UsernameReqDTO usernameReqDTO) {
        if (usernameReqDTO == null) {
            return null;
        }
        UserReqDo userReqDo = new UserReqDo();
        userReqDo.setUserName(usernameReqDTO.getUserName());
        return userReqDo;
    }

    public UserReqDo convert2UserReqDo(UserRegisterReqDTO userRegisterReqDTO) {
        if (userRegisterReqDTO == null) {
            return null;
        }
        UserReqDo userReqDo = new UserReqDo();
        userReqDo.setUserName(userRegisterReqDTO.getUsername());
        return userReqDo;
    }

    public UserResDTO convert2UserResDTO(UserResDo userResDo) {
        if (userResDo == null) {
            return null;
        }
        UserResDTO userResDTO = new UserResDTO();
        userResDTO.setUserName(userResDo.getUserName());
        userResDTO.setNickName(userResDo.getNickName());
        userResDTO.setAvatar(userResDo.getAvatar());
        userResDTO.setSex(userResDo.getSex());
        userResDTO.setEmail(userResDo.getEmail());
        userResDTO.setPhone(userResDo.getPhone());
        userResDTO.setStatus(userResDo.getStatus());
        userResDTO.setCreatedAt(userResDo.getCreatedAt());
        userResDTO.setCreatedBy(userResDo.getCreatedBy());
        userResDTO.setUpdateAt(userResDo.getUpdateAt());
        userResDTO.setUpdateBy(userResDo.getUpdateBy());
        return userResDTO;
    }

}
